//
//  GMTSaveDataTool.m
//  Jarvis-iOS
//
//  Created by zengjing on 2018/11/6.
//  Copyright © 2018 郝振实. All rights reserved.
//

#import "GMTSaveJsonTool.h"

//用于往沙盒中存储数据以及字典
//由于NSUserDefaults支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型
//如果插入了不识别的数据类型，可能崩溃
@implementation GMTSaveJsonTool

+ (void)saveJsonWithKey:(NSString *)key json:(NSDictionary *)json {
    //如果是对象，使用此种保存的方式
//    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:json];
    if (nil == json) {
        return;
    }
    //如果保存的既不为数组也不为字典是，则不进行保存
    if (![json isKindOfClass:[NSDictionary class]] && ![json isKindOfClass:[NSArray class]]) {
        return;
    }
    NSData *data = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingPrettyPrinted error:nil];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:key];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

+ (NSDictionary *)getJsonWithKey:(NSString *)key {
     NSData *data = [[NSUserDefaults standardUserDefaults]valueForKey:key];
    if (nil == data) {
        return nil;
    }
    //如果返回的数据不是data,JSONObjectWithData的话会崩溃
    if (![data isKindOfClass:[NSData class]]) {
        return nil;
    }
    return [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
}


@end
